package com.chhuang.system.service;

import java.util.List;

import com.chhuang.core.bean.QueryBean;
import com.chhuang.core.service.IBaseService;
import com.chhuang.system.bean.MenuWithRoleIdQueryBean;
import com.chhuang.system.mapper.ChRoleMenuMapMapper;
import com.chhuang.system.po.ChMenu;
import com.chhuang.system.po.ChRoleMenuMap;

/**
* ChRoleMenuMap IService
* @author ChHuang
* @date Fri Mar 03 13:08:17 CST 2017
*/
public interface IChRoleMenuMapService extends IBaseService<ChRoleMenuMapMapper, ChRoleMenuMap> {
	
	/**
	 * 查找角色对应的菜单
	 * @param roleId
	 * @return
	 * @throws Exception
	 */
	public List<ChRoleMenuMap> findByRoleId(String roleId) throws Exception;
	
	/**
	 * 根据菜单编号删除所有角色与菜单的对应关系
	 * @param menuId
	 */
	public int deleteByMenuId(String menuId) throws Exception;
	
	/**
	 * 根据多个菜单编号删除所有角色与菜单的对应关系
	 * @param menuIds
	 * @throws Exception
	 */
	public int deleteByMenuIdArray(String[] menuIds) throws Exception;
	
	/**
	 * 根据角色编号删除角色与菜单的对应关系
	 * @param roleIds
	 */
	public int deleteByRoleIdArray(String[] roleIds) throws Exception;
	
	/**
	 * 根据角色编号和菜单编号删除角色与菜单的对应关系
	 * @param roleId
	 * @param menuId
	 * @return
	 */
	public int deleteByRoleIdMenuId(String roleId, String menuId) throws Exception;
	
	/**
	 * 根据菜单编号查找菜单与角色的对应关系
	 * @param menuId
	 * @return
	 */
	public List<ChRoleMenuMap> findByMenuId(String menuId) throws Exception;
	
	/**
	 * 根据角色编号及菜单的查询条件查找菜单信息
	 * @param queryBean
	 * @return
	 * @throws Exception
	 */
	public QueryBean<ChMenu> findMenusByRoleIdAndQueryConditions(MenuWithRoleIdQueryBean queryBean) throws Exception;
}